#include "bme280_sensor.hpp"
#include <Adafruit_BME280.h>

Adafruit_BME280 bme;      // 实例化传感器
BME280Data bmeData;          // 存储读取到的数据

bool initBME280() {
  Wire.begin(SDA_PIN, SCL_PIN);
  return bme.begin(0x76); // 初始化一次即可
}

bool readBME280() {
  if (!bme.sensorID()) return false;  // 检查是否仍在线
  bmeData.temperature = bme.readTemperature();
  bmeData.humidity    = bme.readHumidity();
  bmeData.pressure    = bme.readPressure() / 100.0F;
  return true;
}

void initializeBME280() {
  if (!initBME280()) {
    Serial.println("BME280 Init Failed");
    while (true) delay(1000);  // 停止执行，等待用户检查硬件
  }
  Serial.println("BME280 Init ok");
}

void serialPrintBME280Data() {
  static uint32_t last_bme280  = 0;
  const uint32_t PERIOD_bme280 = 01 * 1 * 1000UL;   // 1 秒钟
  if (millis() - last_bme280 > PERIOD_bme280) {
    if (readBME280()) 
      Serial.printf("温度: %.2f °C\n", bmeData.temperature);//showBME280Data();
    last_bme280 = millis();
  }
}